package com.example.educational.service;

import com.example.educational.entity.Attachment;
import com.example.educational.entity.User;

import java.util.ArrayList;
import java.util.HashMap;

public interface InnerAppService {


    /**
     * 推送按钮交互型通知
     *
     * @param toUser
     * @param accessToken
     * @param name
     * @param title
     * @param category
     * @param releaseDate
     * @param imgSrc
     * @param taskId
     * @return
     */
    Boolean sendMessageByButtonInteraction(String toUser, String accessToken, String name, String title, String category, String releaseDate, String imgSrc, String taskId);

    /**
     * 推送文本通知型通知
     *
     * @param toUser
     * @param accessToken
     * @param name
     * @param title
     * @param category
     * @param releaseDate
     * @param imgSrc
     * @param taskId
     * @param fileSrc
     * @return
     */
    Boolean sendMessageByTextNotice(String toUser, String accessToken, String name, String title, String category, String releaseDate, String imgSrc, String taskId, ArrayList<Attachment> fileSrc);

    /**
     * 获取部门id
     *
     * @param accessToken
     * @return
     */
    ArrayList<String> getDepartmentIds(String accessToken);

    /**
     * 根据部门编号获取用户详细信息
     *
     * @param accessToken
     * @param departmentIds
     * @return
     */
    ArrayList<User> getInformationFromDepartment(String accessToken, ArrayList<String> departmentIds);

    /**
     * 根据部门编号获取用户详细信息
     *
     * @param accessToken
     * @param departmentId
     * @return
     */
    ArrayList<User> getInformationFromDepartmentDetail(String accessToken, String departmentId);

    /**
     * 获取用户身份
     *
     * @param accessToken
     * @param code
     * @return
     */
    HashMap<String, Object> getUserIdentify(String accessToken, String code);


    /**
     * 获取用户详细信息
     *
     * @param accessToken
     * @param userId
     * @return
     */
    User getUserDetailByUserId(String accessToken, String userId);


}
